home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 26 / AACD 26.iso / AACD / Programming / AllPlaton / Unsorted / AmokLemming.AMOS / AmokLemming.amosSourceCode next >
Encoding:
AMOS Source Code  |  2001-06-27  |  3.6 KB  |  149 lines

  1. Hide 
  2. 'Load Iff "dh2:dpaint/brush/lemmings.br",0 
  3. 'Erase 1 
  4. 'For A=0 To 15 : Colour A+16, Colour(A) : Next 
  5. 'For A=0 To 3
  6. '  Get Sprite A+1,A*8,0 To A*8+8,10
  7. '  Hot Spot A+1,4,10 
  8. '  Ink 0 : Bar A*8,0 To A*8+7,11 
  9. '  Paste Bob A*8-8,0,$8001+A 
  10. '  Get Sprite A+5,A*8,0 To A*8+8,10
  11. '  Hot Spot A+5,4,10 
  12. '  Paste Bob 0,0,A+1 
  13. 'Next  
  14. 'Load Iff "DNA:Visual/Painting/amosgfx/gf2test5.iff",0 
  15. 'Colour 17,$CCC : Colour 18,$68 : Colour 19,$70
  16. Unpack 9 To 0
  17. Paper 0
  18. WY=Screen Height
  19. Screen Display 0,112,40,336,256
  20. 'Spack 0 To 9
  21. Dim SH(30,5)
  22. LX=160*256 : LY=100*256
  23. SX=0 : SY=0 : GY=4 : JPOW=150
  24. AR=1 : FR=5
  25. THR=10
  26. SCY=0 : SCSP=0 : ANI=0
  27. Do 
  28.   Wait Vbl 
  29.   Add LX,SX : Add LY,SY
  30.   Add SY,GY
  31.   If FLOOR
  32.     Add SX,Sgn(-SX)*Min(FR,Abs(SX))
  33.   Else 
  34.     Add SX,Sgn(-SX)*Min(AR,Abs(SX))
  35.   End If 
  36.   RX=LX/256 : RY=LY/256
  37.   NP=Min(Max(LY-32768+SY*4,0),(WY-256)*256)
  38.   D=(NP-SCY)
  39.   Add SCSP,(D-SCSP*16)/16
  40.   SCY=Min(Max(SCY+SCSP,0),(WY-256)*256)
  41.   Screen Offset 0,0,SCY/256
  42.   If DI<0
  43.     Sprite 0,X Hard(RX),Y Hard(RY-SCY/256),5+ANI/4
  44.   Else 
  45.     Sprite 0,X Hard(RX),Y Hard(RY-SCY/256),1+ANI/4
  46.   End If 
  47.   P1= Extension_8_039E(RX,RY)
  48.   If P1
  49.     If SY>0
  50.       SY=128-GY-SY/3 : FLOOR=1 : LY=LY and $FFFF00
  51.     End If 
  52.   Else 
  53.     FLOOR=0
  54.   End If 
  55.   P2= Extension_8_039E(RX,RY-10)
  56.   If P2 and P1=0 and SY<0
  57.     SY=-SY/2+GY
  58.   End If 
  59.   If FLOOR=0
  60.     If SY>0
  61.       For A=0 To Abs(SX/32)
  62.         P1= Extension_8_039E(RX,RY)
  63.         P2= Extension_8_039E(RX,RY+1)
  64.         If P1=0 and P2
  65.           Add LY,256 : Inc RY : SY=0 : FLOOR=1
  66.         Else 
  67.           Exit 
  68.         End If 
  69.       Next 
  70.     End If 
  71.   End If 
  72.   Do 
  73.     P1= Extension_8_039E(RX,RY-1)
  74.     P2= Extension_8_039E(RX,RY-4)
  75.     If P1 and P2=0
  76.       Add LY,-256 : Dec RY
  77.     Else 
  78.       Exit 
  79.     End If 
  80.   Loop 
  81.   If P1 and P2
  82.     Add LX,-SX*2
  83.     SX=-SX/2
  84.   End If 
  85.   If FLOOR=1
  86.     If Extension_8_039E(RX+1,RY+1)<>0 and Extension_8_039E(RX+2,RY+1)=0 : Add SX,GY*2 : End If 
  87.     If Extension_8_039E(RX-1,RY+1)<>0 and Extension_8_039E(RX-2,RY+1)=0 : Add SX,-GY*2 : End If 
  88.     If Extension_8_039E(RX+1,RY+1)=0 : Add SX,GY*4 : End If 
  89.     If Extension_8_039E(RX-1,RY+1)=0 : Add SX,-GY*4 : End If 
  90.     If Extension_8_039E(RX+1,RY+2)=0 : Add SX,GY*4 : End If 
  91.     If Extension_8_039E(RX-1,RY+2)=0 : Add SX,-GY*4 : End If 
  92.   Else 
  93.     ANI=0
  94.   End If 
  95.   If Jup(1) and FLOOR=1 Then JSTART=1 : SY=-JPOW
  96.   If Jup(1) and JSTART>0 and JSTART<50
  97.     Add SY,-GY*2
  98.     Inc JSTART
  99.   Else 
  100.     JSTART=0
  101.   End If 
  102.   If Jleft(1) or Jright(1)
  103.     Add ANI,1,0 To 15
  104.   Else 
  105.     ANI=0
  106.   End If 
  107.   If Jleft(1) and SX>-256 Then Add SX,-THR : DI=-1
  108.   If Jright(1) and SX<256 Then Add SX,THR : DI=1
  109.   If Fire(1)=0 Then SHO=0
  110.   If Fire(1) and SHO=0
  111.     SHO=1
  112.     For A=0 To 29
  113.       Exit If SH(A,0)=0
  114.     Next 
  115.     SH(A,0)=LX : SH(A,1)=LY-5*256
  116.     SH(A,2)=DI*512 : SH(A,3)=SY-GV*8 : SH(A,4)=-5
  117.   End If 
  118.   For A=0 To 29
  119.     If SH(A,0)<>0
  120.       If SH(A,4)>-5
  121.         EX=SH(A,0)/256 : EY=SH(A,1)/256
  122.         If SH(A,4)<5
  123.           If SH(A,4)<0
  124.             Ink 7+Abs(SH(A,4)) : Circle EX,EY,5-Abs(SH(A,4))
  125.           Else 
  126.             Ink 0 : Circle EX,EY,5-Abs(SH(A,4))
  127.           End If 
  128.         Else 
  129.           Ink 0 : Extension_8_05E6 EX,EY,5
  130.           SH(A,0)=0
  131.         End If 
  132.         Inc SH(A,4)
  133.       Else 
  134.          Extension_8_0388 SH(A,0)/256,SH(A,1)/256,0
  135.         Add SH(A,0),SH(A,2)
  136.         Add SH(A,1),SH(A,3)
  137.         Add SH(A,3),GY/2
  138.         EX=SH(A,0)/256 : EY=SH(A,1)/256
  139.         P= Extension_8_039E(EX,EY)
  140.         If P>1 or P=-1
  141.   '        D=Qsqr(Abs(EX-RX)*Abs(EX-RX)+Abs(EY-RY)*Abs(EY-RY)) 
  142.           Inc SH(A,4)
  143.         Else 
  144.            Extension_8_0388 EX,EY,1
  145.         End If 
  146.       End If 
  147.     End If 
  148.   Next 
  149. Loop